/*
 * Quercia Luciano
 * Algoritmi e Strutture Dati
 * a.a. 2009-10
 */


#include <iostream>
using namespace std;

#include "albero.h"


int main() {

	Albero<string> tree;
	typedef Albero<string>::posizione posizione;

	posizione p;


	try {
		tree.insRadice("html");

		tree.print();
		cout << endl;

		p = tree.radice();
		tree.insPrimoFiglio( p, "head" );

		tree.print();
		cout << endl;

		p = tree.primoFiglio( p );
		tree.insPrimoFiglio( p, "title" );

		tree.print();
		cout << endl;

		p = tree.radice();
		p = tree.primoFiglio( p );
		tree.insFratelloDestro( p, "body" );

		tree.print();
		cout << endl;

		p = tree.fratelloDestro(p);
		tree.insPrimoFiglio( p, "table" );

		tree.print();
		cout << endl;

		p = tree.primoFiglio( p );
		tree.insPrimoFiglio( p, "tr" );

		tree.print();
		cout << endl;

		p = tree.primoFiglio( p );
		tree.insPrimoFiglio( p, "td" );

		tree.print();
		cout << endl;

		p = tree.primoFiglio( p );

		tree.insFratelloDestro( p, "td");

		tree.print();
		cout << endl;

		p = tree.fratelloDestro(p);
		tree.insFratelloDestro( p, "td");

		tree.print();
		cout << endl;

		p = tree.fratelloDestro(p);

		tree.print();
		cout << endl;

		p = tree.radice();
		p = tree.primoFiglio(p);
		p = tree.fratelloDestro(p);
		p = tree.primoFiglio(p);

		tree.cancSottoAlbero(p);

		tree.print();
		cout << endl;
		tree.~Albero();

	} catch (char const * msg) {
		cout << msg << endl;
	}



	return 0;
}
